#include<stdio.h>

int main(){
    int n, k, min = 1, max;
    scanf("%d %d", &n, &k);
    
    if(n == k || k == 0){
        min = max = 0;
    }else if(k == 1 || k == n - 2){
        max = 2;
    }else if(k == 2 && n >= 6){
        max = 4;
    }else{
        max = n - k;
    }
    printf("%d %d", min, max);
       
    return 0;
}

/*链接：https://ac.nowcoder.com/acm/problem/22237
来源：牛客网

牛牛想要挑战一下自己的勇气，于是打算去玩牛村的刺激过山车，牛村的刺激过山车一排只坐一个人，牛牛胆子比较小，所以他要求必须坐在前面一排有人或者后面一排有人的空位置。
牛牛上车前只知道这批过山车总共有n排位置，已经有k个人坐上去了，请帮助牛牛计算一下最少有多少排位置符合他的要求，最多有多少个位置符合他的要求。
注：第一排位置的前面和最后一排位置的后面我们认为是没有人。*/